package com.liliudong.template.common.dto.sys;

import com.liliudong.template.common.constant.SysMenuTypeEnum;
import com.liliudong.template.common.constant.SysMenuVisibleEnum;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 系统菜单导入DTO
 *
 * @author ldli5
 * @classname SysMenuImportDTO
 * @date 2024/7/4-15:40
 */
@Data
public class SysMenuImportDTO {

	/**
	 * 组件路径 相对路径是 views
	 */
	private String component;

	/**
	 * 图标
	 */
	private String icon;

	/**
	 * 名称
	 */
	@NotBlank(message = "名称不能为空")
	private String name;

	/**
	 * 父级ID
	 */
	@NotNull(message = "父级ID不能为空")
	private Long parentId;

	/**
	 * 权限标识符
	 */
	@NotBlank(message = "权限标识符不能为空")
	private String permission;

	/**
	 * 排序
	 */
	private Integer sort;

	/**
	 * 类型 1 目录 2菜单 3按钮
	 */
	@NotNull(message = "类型不能为空")
	private SysMenuTypeEnum type;

	/**
	 * 可见的 1可见 0隐藏
	 */
	private SysMenuVisibleEnum visible = SysMenuVisibleEnum.VISIBLE;

	/**
	 * 子级菜单
	 */
	private List<SysMenuImportDTO> children;
}
